<?php
declare(strict_types=1);

namespace app\apisell\command;

use app\apisell\controller\xcx\Order;
use app\apisell\controller\xcx\PopuData;
use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\facade\Db;

class syncOrderData extends Command
{
    protected function configure()
    {
        // 命令的名称及用途描述
        $this->setName('order')->setDescription('关闭分销未支付订单');
    }
    /**
     * 执行清除未支付订单的操作
     *
     * 本函数从数据库中查询设置的未支付订单清除时间阈值，并根据该阈值删除所有未支付的订单
     * 这是为了防止未支付订单长时间占用资源，确保系统的高效运行
     *
     * @param Input $input 输入对象，用于获取命令行输入的参数
     * @param Output $output 输出对象，用于向命令行输出信息
     */
    protected function execute(Input $input, Output $output)
    {
        // 从数据库中获取未支付订单清除时间设置
        $reData = Db::table('xh_sell_sys_wechat_pay_disposition')->where('id','>',0)->find();
        // 定义清除未支付订单的时间阈值
        $timeout = $reData['set_hour'] * 60 * 60; // 1小时
    
        // 编写 SQL 查询来删除超过时间阈值的未支付订单
        $result = Db::table('xh_sell_order')
            ->where('state', 1)
            ->whereTime('create_time', '<', date('Y-m-d H:i:s', time() - $timeout))
            ->update(['state'=>7]);
    
        // 根据删除结果输出相应信息
        if ($result) {
            $output->writeln("未支付的订单已成功清除");
        } else {
            $output->writeln("没有需要清除的未支付订单");
        }
    }
    
    
}